home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
dbase
/
dbpass10.zip
/
PASSEDIT.PRG
< prev
Wrap
Text File
|
1992-03-11
|
3KB
|
125 lines
**************************************************************************
* Name........: PASSEDIT.PRG *
* Purpose.....: Change password. *
* Date........: 11/03/92 *
* By..........: Frederico Terenas E-mail: cs_a264@Kingston.ac.uk *
**************************************************************************
PROCEDURE PASSEDIT
* To change the password, you must know the current password
PRIVATE ALL
ENC_FACTOR = 1200
SET SAFETY OFF
RESTORE FROM CHAVE ADDITIVE && restores current password
DEFINE WINDOW GET_PWD FROM 8,22 TO 14,55 DOUBLE COLOR ,,GR+/G
ACTIVATE WINDOW GET_PWD
@ 0,8 SAY "Change Password"
@ 1,0 SAY REPL(CHR(196) ,32)
SET COLOR OF FIELDS TO RB/RB && bg color = fg color
curr = SPACE(10)
@ 2,2 SAY "Your password:"
@ 2,20 GET curr PICTURE "XXXXXXXXXX"
READ
OK = .T.
currlen = LEN(RTRIM(curr))
IF Length1 <> currlen && Length1 from file
OK = .F.
ELSE
Counter = 1
DO WHILE (Counter <= Length1) .AND. OK
IF ASC(SUBSTR(CURR,Counter,1)) + ENC_FACTOR <> (Password[Counter])
OK = .F.
ELSE
Counter = Counter + 1
ENDIF
ENDDO
ENDIF
IF OK
DECLARE Password[10]
Pass = SPACE(10)
Length1 = 0
Counter = 1
@ 3,2 SAY "New password:"
@ 3,20 GET Pass PICTURE "XXXXXXXXXX"
READ
Length1 = LEN(RTRIM(Pass))
DO WHILE Counter <= Length1
Password[Counter] = ASC(SUBSTR(Pass,Counter,1)) + ENC_FACTOR
Counter = Counter + 1
ENDDO
Length2 = 0
PASS = SPACE(10)
Counter = 1
OK = .T.
@ 4,2 SAY "Again:"
@ 4,20 GET Pass PICTURE "XXXXXXXXXX"
READ
DEACTIVATE WINDOW GET_PWD
Length2 = LEN(RTRIM(Pass))
IF Length1 <> Length2
OK = .F.
ELSE
DO WHILE (Counter <= Length1) .AND. OK
IF ASC(SUBSTR(Pass,Counter,1)) + ENC_FACTOR <> (Password[Counter])
OK = .F.
ELSE
Counter = Counter + 1
ENDIF
ENDDO
ENDIF
SET CURSOR OFF
IF OK
IF Length1 = 0
PASSWORD[1] = 0
ENDIF
SAVE TO CHAVE ALL EXCEPT PASS
@ 16,29 TO 18,49 DOUBLE COLOR G/B
@ 17,31 SAY "Password changed!"
Espere = INKEY(3)
ELSE
@ 16,30 TO 19,49 DOUBLE COLOR R/B
@ 17,32 SAY "Invalid password"
@ 18,34 SAY "NOT CHANGED! "
Espere = INKEY(3)
ENDIF
RELEASE ALL && restore memory
SET CURSOR ON
ELSE
@ 3,8 SAY "WRONG PASSWORD"
A = INKEY(2)
DEACTIVATE WINDOW GET_PWD
RETURN
ENDIF
RETURN && from PASSEDIT